home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / m17n / si-phonetic-dynamic.mim < prev    next >
Text File  |  2009-04-29  |  7KB  |  189 lines

  1. ;; si-phonetic-dynamic.mim -- Sinhala phonetic dynamic keymap
  2. ;; Copyright (C) 2007-2008  Harshula Jayasuriya <harshula@gmail.com>
  3.  
  4. ;; This program is free software; you can redistribute it and/or
  5. ;; modify it under the terms of the GNU General Public License
  6. ;; as published by the Free Software Foundation; either version 2
  7. ;; of the License, or (at your option) any later version.
  8.  
  9. ;; This program is distributed in the hope that it will be useful,
  10. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. ;; GNU General Public License for more details.
  13.  
  14. ;; You should have received a copy of the GNU General Public License
  15. ;; along with this program; if not, write to the Free Software
  16. ;; Foundation, Inc., 51 Franklin Street, Fifth Floor,
  17. ;; Boston, MA  02110-1301, USA.
  18.  
  19. ;; m17n Keymap file for Sinhala (Sri Lanka) (2007-07-08)
  20. ;; Maintainer: Harshula Jayasuriya <harshula@gmail.com>
  21. ;; Last Updated: 2008-12-26
  22. ;; This is a phonetic dynamic mapping for a standard US-English keyboard
  23. ;; (qwerty)
  24. ;; http://www.nongnu.org/sinhala/doc/keymaps/sinhala-keyboard_4.html
  25.  
  26.  
  27. (input-method si phonetic-dynamic)
  28.  
  29. (description "Sinhala phonetic dynamic input method:
  30.   <http://www.nongnu.org/sinhala/doc/keymaps/sinhala-keyboard_4.html>"
  31. )
  32.  
  33. (title "α╖âα╖Æ (Phonetic Dynamic)")
  34.  
  35. (macro
  36.  (delete-al-zwj
  37.   (cond
  38.    ((& (= @-2 0x0DCA) (= @-1 0x200D))
  39.     (delete @-2)
  40.     ;; repaya
  41.     (cond
  42.      ((= @-1 0x0DBB)
  43.       (delete @-1)
  44.      )
  45.     )
  46.    )
  47.   )
  48.  )
  49.  
  50.  (insert-vowel
  51.   (cond
  52.    ((& (>= @-1 0x0D9A) (<= @-1 0xDC6))
  53.     (cond
  54.      ((= c 0x0D85) "α╖è")    ; 0x0dca - al-lakuna
  55.      ((= c 0x0D86) "α╖Å")    ; 0x0dcf - aela-pilla (aa)
  56.      ((= c 0x0D87) "α╖É")    ; 0x0dd0 - ketti aeda-pilla (ae)
  57.      ((= c 0x0D88) "α╖æ")    ; 0x0dd1 - diga aeda-pilla (aae)
  58.      ((= c 0x0D89) "α╖Æ")    ; 0x0dd2 - ketti is-pilla (i)
  59.      ((= c 0x0D8A) "α╖ô")    ; 0x0dd3 - diga is-pilla (ii)
  60.      ((= c 0x0D8B) "α╖ö")    ; 0x0dd4 - ketti paa-pilla (u)
  61.      ((= c 0x0D8C) "α╖û")    ; 0x0dd6 - diga paa-pilla (uu)
  62.      ((= c 0x0D8D) "α╖ÿ")    ; 0x0dd8 - gaetta-pilla (r)
  63.      ((= c 0x0D8E) "α╖▓")    ; 0x0df2 - diga gaetta-pilla (rr)
  64.      ((= c 0x0D8F) "α╖ƒ")    ; 0x0ddf - gayanukitta (l)
  65.      ((= c 0x0D90) "α╖│")    ; 0x0df3 - diga gayanukitta (ll)
  66.      ((= c 0x0D91) "α╖Ö")    ; 0x0dd9 - kombuva (e)
  67.      ((= c 0x0D92) "α╖Ü")    ; 0x0dda - diga kombuva (ee)
  68.      ((= c 0x0D93) "α╖¢")    ; 0x0ddb - kombu deka (ai)
  69.      ((= c 0x0D94) "α╖£")    ; 0x0ddc - kombuva haa aela-pilla (o)
  70.      ((= c 0x0D95) "α╖¥")    ; 0x0ddd - kombuva haa diga aela-pilla (oo)
  71.      ((= c 0x0D96) "α╖₧")    ; 0x0dde - kombuva haa gayanukitta (au)
  72.     )
  73.    )
  74.    (1
  75.     (insert c)
  76.    )
  77.   )
  78.  )
  79.  
  80. )
  81.  
  82. (map
  83.  (phon
  84.   ((A-n) "α╢é")        ; 0x0d82 - anusvaraya (anusvara)
  85.   ("H" "α╢â")        ; 0x0d83 - visargaya (visarga)
  86.  
  87.   ("a" (set c 0x0D85) (insert-vowel))    ; 0x0d85 - ayanna (a)
  88.   ("A" (set c 0x0D86) (insert-vowel))    ; 0x0d86 - aayanna (aa)
  89.   ("w" (set c 0x0D87) (insert-vowel))    ; 0x0d87 - aeyanna (ae)
  90.   ("W" (set c 0x0D88) (insert-vowel))    ; 0x0d88 - aeeyanna (aee)
  91.   ("i" (set c 0x0D89) (insert-vowel))    ; 0x0d89 - iyanna (i)
  92.   ("I" (set c 0x0D8A) (insert-vowel))    ; 0x0d8a - iiyanna (ii)
  93.   ("u" (set c 0x0D8B) (insert-vowel))    ; 0x0d8b - uyanna (u)
  94.   ("U" (set c 0x0D8C) (insert-vowel))    ; 0x0d8c - uuyanna (uu)
  95.   ("q" (set c 0x0D8D) (insert-vowel))    ; 0x0d8d - iruyanna (iru)
  96.   ("Q" (set c 0x0D8E) (insert-vowel))    ; 0x0d8e - iruuyanna (iruu)
  97.   ((A-l) (set c 0x0D8F) (insert-vowel))    ; 0x0d8f - iluyanna (ilu)
  98.   ((A-L) (set c 0x0D90) (insert-vowel))    ; 0x0d90 - iluuyanna (iluu)
  99.   ("e" (set c 0x0D91) (insert-vowel))    ; 0x0d91 - eyanna (e)
  100.   ("E" (set c 0x0D92) (insert-vowel))    ; 0x0d92 - eeyanna (ee)
  101.   ((A-e) (set c 0x0D93) (insert-vowel))    ; 0x0d93 - aiyanna (ai)
  102.   ("o" (set c 0x0D94) (insert-vowel))    ; 0x0d94 - oyanna (o)
  103.   ("O" (set c 0x0D95) (insert-vowel))    ; 0x0d95 - ooyanna (oo)
  104.   ((A-o) (set c 0x0D96) (insert-vowel))    ; 0x0d96 - auyanna (au)
  105.  
  106.   ("k" "α╢Ü")        ; 0x0d9a - alpapraana kayanna (ka)
  107.   ("K" "α╢¢")        ; 0x0d9b - mahaapraana kayanna (kha)
  108.   ("g" "α╢£")        ; 0x0d9c - alpapraana gayanna (ga)
  109.   ("G" "α╢¥")        ; 0x0d9d - mahaapraana gayanna (gha)
  110.   ((A-N) "α╢₧")        ; 0x0d9e - kantaja naasikyaya (nga)
  111.   ((A-g) "α╢ƒ")        ; 0x0d9f - sanyaka gayanna (nnga)
  112.   ("c" "α╢á")        ; 0x0da0 - alpapraana cayanna (ca)
  113.   ("C" "α╢í")        ; 0x0da1 - mahaapraana cayanna (cha)
  114.   ("j" "α╢ó")        ; 0x0da2 - alpapraana jayanna (ja)
  115.   ("J" "α╢ú")        ; 0x0da3 - mahaapraana jayanna (jha)
  116.   ("z" "α╢ñ")        ; 0x0da4 - taaluja naasikyaya (nya)
  117.   ("Z" "α╢Ñ")        ; 0x0da5 - taaluja sanyooga naasikyaya (jnya)
  118.   ((A-j) "α╢ª")        ; 0x0da6 - sanyaka jayanna (nyja)
  119.   ((A-t) "α╢º")        ; 0x0da7 - alpapraana ttayanna (tta)
  120.   ((A-T) "α╢¿")        ; 0x0da8 - mahaapraana ttayanna (ttha)
  121.   ((A-d) "α╢⌐")        ; 0x0da9 - alpapraana ddayanna (dda)
  122.   ((A-D) "α╢¬")        ; 0x0daa - mahaapraana ddayanna (ddha)
  123.   ("N" "α╢½")        ; 0x0dab - muurdhaja nayanna (nna)
  124.   ("X" "α╢¼")        ; 0x0dac - sanyaka ddayanna (nndda)
  125.   ("t" "α╢¡")        ; 0x0dad - alpapraana tayanna (ta)
  126.   ("T" "α╢«")        ; 0x0dae - mahaapraana tayanna (tha)
  127.   ("d" "α╢»")        ; 0x0daf - alpapraana dayanna (da)
  128.   ("D" "α╢░")        ; 0x0db0 - mahaapraana dayanna (dha)
  129.   ("n" "α╢▒")        ; 0x0db1 - dantaja nayanna (na)
  130.   ("x" "α╢│")        ; 0x0db3 - sanyaka dayanna (nda)
  131.   ("p" "α╢┤")        ; 0x0db4 - alpapraana payanna (pa)
  132.   ("P" "α╢╡")        ; 0x0db5 - mahaapraana payanna (pha)
  133.   ("b" "α╢╢")        ; 0x0db6 - alpapraana bayanna (ba)
  134.   ("B" "α╢╖")        ; 0x0db7 - mahaapraana bayanna (bha)
  135.   ("m" "α╢╕")        ; 0x0db8 - mayanna (ma)
  136.   ("M" "α╢╣")        ; 0x0db9 - amba bayanna (mba)
  137.   ("y" "α╢║")        ; 0x0dba - yayanna (ya)
  138.   ("r" "α╢╗")        ; 0x0dbb - rayanna (ra)
  139.   ("l" "α╢╜")        ; 0x0dbd - dantaja layanna (la)
  140.   ("v" "α╖Ç")        ; 0x0dc0 - vayanna (va)
  141.   ("S" "α╖ü")        ; 0x0dc1 - taaluja sayanna (sha)
  142.   ((A-s) "α╖é")        ; 0x0dc2 - muurdhaja sayanna (ssa)
  143.   ("s" "α╖â")        ; 0x0dc3 - dantaja sayanna (sa)
  144.   ("h" "α╖ä")        ; 0x0dc4 - hayanna (ha)
  145.   ("L" "α╖à")        ; 0x0dc5 - muurdhaja layanna (lla)
  146.   ("f" "α╖å")        ; 0x0dc6 - fayanna (fa)
  147.  
  148.   ((A-.) "α╖┤")        ; 0x0df4 - kunddaliya (punctuation)
  149.  
  150.   ("R" "α╖èΓÇìα╢╗")        ;  0x0dca,0x200d,0x0dbb - rakaaranshaya
  151.   ("Y" "α╖èΓÇìα╢║")        ;  0x0dca,0x200d,0x0dba - yansaya
  152.   ((A-r) "α╢╗α╖èΓÇì")        ;  0x0dbb,0x0dca,0x200d - repaya
  153.  
  154.   ((A-,) "α╖èΓÇì")        ; 0x0dca,0x200d - join - conjunct letters cons 0DCA ZWJ cons
  155.   ((A-/) "ΓÇìα╖è")        ; 0x200d,0x0dca - touch - cons ZWJ 0DCA cons
  156.  
  157.   ;; Shift-space and Alt-space
  158.   ((S-\ ) "┬á")        ; 0x00a0 - no-break space
  159.   ((A-\ ) "ΓÇî")        ; 0x200c - ZWNJ
  160.  
  161.   ((BackSpace)
  162.    (cond
  163.     ;; rakaaranshaya and yansaya
  164.     ((| (= @-1 0x0DBA) (= @-1 0x0DBB))
  165.      (delete @-1)
  166.      (delete-al-zwj)
  167.     )
  168.     ;; touch
  169.     ((& (= @-2 0x200D) (= @-1 0x0DCA))
  170.      (delete @-2)
  171.     )
  172.     ;; join
  173.     ((= @-1 0x200D)
  174.      (delete-al-zwj)
  175.     )
  176.     (1
  177.      (delete @-1)
  178.     )
  179.    )
  180.   )
  181.  )
  182. )
  183.  
  184. (state
  185.  (init
  186.   (phon)
  187.  )
  188. )
  189.